package com.kotlin.android.api.call

import com.kotlin.android.api.CallResult
import com.kotlin.android.api.bean.SeatBanner

/**
 * 调用结果集的扩展处理。
 *
 * 建议处理较为复杂的业务逻辑时使用该种方式进行扩展；
 * 处理较为简单的业务时，可使用级联方法调用的方式注入 [handleData]；
 *
 * Created on 2020/4/28.
 *
 * @author o.s
 */
class SimpleCallResult : CallResult<SeatBanner>() {

    /**
     * 覆盖默认实现，处理较为复杂的业务逻辑，
     * 处理较为简单的业务时，可使用级联方法调用的方式注入 [handleData]
     */
    override fun handleData(data: SeatBanner) {
        when (data.bizCode) {
            0 -> {
                success?.invoke(data)
            }
            1 -> {
                error?.invoke(data.bizMsg)
            }
            2 -> {
                error?.invoke(data.bizMsg)
            }
            else -> {
                error?.invoke("其他情况")
            }
        }
    }

}